iT邦幫忙

2026 iThome 鐵人賽

DAY 13
1
AI Engineering

Harness Engineering × Pi Agent 實戰:打造可觀測、可評估的 AI Coding Agent系列 第 13 篇

Day13:多三個搜尋工具卻沒有更快:Agent 如何用 Bash 繞路

  • 分享至 

  • xImage
  •  

題目為什麼改了

原本的大綱寫的是「拿掉 grep/find/ls 的代價」。實際動手之後發現前提就錯了:Pi 預設根本沒開這三個工具(Day12),預設只有 read、bash、edit、write。

所以今天要問的是反過來的問題:把這三個搜尋工具打開,有沒有比較好?

  • 任務:T4 拆常數——把散落在 6 個檔案裡的 DEFAULT_PAGE_SIZE 拆成 LIST_PAGE_SIZE(25)和 SEARCH_PAGE_SIZE(10),而且改完之後專案裡不能再出現舊常數。這個任務刻意需要跨檔案搜尋。
  • 兩組條件:預設四個工具 vs 額外開啟 grep/find/ls。
  • 每組 5 次,gpt-5.6-luna。

結果:沒有差

條件 成功 成本中位數 tokens 中位數 工具呼叫中位數
預設四個工具 5/5 $0.0070 61,261 23
加上 grep/find/ls 5/5 $0.0059 60,664 24

中位數看起來有差,但把十次執行的成本全部攤開就很清楚:

條件 五次的成本
預設四個工具 $0.0043、$0.0065、$0.0070、$0.0075、$0.0089
加上 grep/find/ls $0.0050、$0.0055、$0.0059、$0.0074、$0.0079

完全重疊。 tokens 也一樣(中位數 61,261 vs 60,664,差 1%)。這個任務在這個環境下,開不開搜尋工具沒有可測量的差別。

為什麼?因為 agent 會繞路

有意思的是它怎麼達成一樣的結果:

開了搜尋工具之後,agent 改用什麼

條件 read bash edit grep find ls 合計
預設四個工具 9.6 4.6 8.8 — — — 23.0
加上 grep/find/ls 8.8 1.2 7.8 3.8 1.0 0.2 22.8

沒有搜尋工具的那一組,5 次執行全部都用 bash 跑了 rg(每次 2–3 個搜尋指令,其中兩次還用了 find)。開了搜尋工具的那一組,bash 從平均 4.6 次掉到 1.2 次,grep 接手 3.8 次,而且 bash 裡一個搜尋指令都沒有。

也就是說:

這三個工具不是給 agent 新能力,是換一條路做同一件事。

Day14 會看到,Pi 的 system prompt 其實也知道這件事——沒開搜尋工具時,它會自動多加一行 guideline:「Use bash for file operations like ls, rg, find」。harness 早就把繞路的路標放好了。

但它不是免費的

工具不是加了不用錢。每個工具的 JSON schema 都會跟著每一次請求送出去。量一下第一輪的輸入 token:

條件 第一次模型呼叫的輸入
預設四個工具 1,520 tokens
加上 grep/find/ls 1,905 tokens

五次執行,每一次都是這兩個數字,一個不差。三個搜尋工具的 schema 固定佔 385 個 token。

這個數字剛好可以跟 Day9 對照:那份寫了五條專案規則的 AGENTS.md 是 354 個 token。三個搜尋工具的「自我介紹」,比整份專案規則還貴。

所以該不該開?

依這次的資料:

  • 在有 rg 的開發機上:開不開差不多。 agent 會自己用 bash 繞過去,而你要為此付 385 tokens/次請求。Pi 把它們設成預設關閉,是合理的選擇。
  • 在沒有 rg、甚至沒有 bash 的環境下,結論應該會反過來。 這正是我對這個結果最不確定的地方——我的環境裡 rg 一直都在(那是 Pi 第一次啟動時自己下載到 D:\pi-agent\bin 的,見 Day5),Git Bash 也在,所以繞路的成本幾乎是零。如果把 agent 關進一個只有基本指令的容器裡,或是為了安全把 bash 直接關掉,那這三個工具就從「多餘」變成「唯一的路」。

這是一個可以驗證的預測,也是這個系列後面講 sandbox 時會回來的題目。

誠實的邊界

  1. 只有一個任務、n=5。 而且這個任務的搜尋量不算大(6 個檔案、約 60 個檔案的專案)。在一個幾千個檔案的 repo 裡,grep 工具的結構化輸出可能比 rg 的純文字更省 token。
  2. 「沒有差」不等於「證明相等」。 n=5 的解析度只夠說「差異小於雜訊」,不足以宣稱兩者完全一樣。
  3. 開啟工具同時改了 system prompt。 那行「用 bash 做檔案操作」的 guideline 在開啟搜尋工具後會消失,所以嚴格說起來這個實驗動到的不只一個變數——這是 Pi 的設計決定的,沒辦法只換工具不換提示。

明天

Day14 把 system prompt 整份攤開來看:它到底寫了什麼、有多長、在成本裡佔多少,以及為什麼它其實是一個「函式」而不是一份文件。


上一篇
Day12:給 agent 工具越多越好嗎?從 Pi 的預設工具看 Agent 的能力邊界
下一篇
Day14:System Prompt 真的是成本大戶嗎?拆解 Pi 的動態組裝與帳單
系列文
Harness Engineering × Pi Agent 實戰:打造可觀測、可評估的 AI Coding Agent 共 17 篇
圖片
  熱門推薦
圖片
{{ item.channelVendor }} | {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中
0
WendyHus
iT邦新手 5 級 ‧ 2026-09-27 18:35:19

又學到更多了~好友收穫啊!

0
justin_log
iT邦新手 4 級 ‧ 2026-09-27 20:12:21

期待明天的把 system prompt 整份攤開來看

交給我,填滿你的腦袋

0
justin_log
iT邦新手 4 級 ‧ 2026-09-27 20:12:51

這篇文章寫的太好了!!!

我要留言

立即登入留言